package com.lekang.le.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lekang.common.annotation.Excel;

import java.util.Date;

/**
 * 客户信息视图对象
 * 用于展示客户（微信用户）的综合信息
 * 
 * @author lekang
 * @date 2025-10-27
 */
public class CustomerInfoVO
{
    /** 微信用户ID（wx_user表的user_id） */
    private Long wxUserId;

    /** 客户昵称（从sys_user表查询） */
    @Excel(name = "客户昵称")
    private String nickname;

    /** 客户手机号（从sys_user表查询） */
    @Excel(name = "客户手机号")
    private String phone;

    /** 是否签约（根据contract表判断）：是/否 */
    @Excel(name = "是否签约")
    private String isSigned;

    /** 服务下单次数（从order_management表统计） */
    @Excel(name = "服务下单次数（次）")
    private Integer orderCount;

    /** 绑定老人姓名（多个老人用顿号分隔） */
    @Excel(name = "绑定老人姓名")
    private String elderlyNames;

    /** 首次登录时间（从sys_user表的create_time字段） */
    @Excel(name = "首次登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstLoginTime;

    public Long getWxUserId() {
        return wxUserId;
    }

    public void setWxUserId(Long wxUserId) {
        this.wxUserId = wxUserId;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getIsSigned() {
        return isSigned;
    }

    public void setIsSigned(String isSigned) {
        this.isSigned = isSigned;
    }

    public Integer getOrderCount() {
        return orderCount;
    }

    public void setOrderCount(Integer orderCount) {
        this.orderCount = orderCount;
    }

    public String getElderlyNames() {
        return elderlyNames;
    }

    public void setElderlyNames(String elderlyNames) {
        this.elderlyNames = elderlyNames;
    }

    public Date getFirstLoginTime() {
        return firstLoginTime;
    }

    public void setFirstLoginTime(Date firstLoginTime) {
        this.firstLoginTime = firstLoginTime;
    }

    @Override
    public String toString() {
        return "CustomerInfoVO{" +
                "wxUserId=" + wxUserId +
                ", nickname='" + nickname + '\'' +
                ", phone='" + phone + '\'' +
                ", isSigned='" + isSigned + '\'' +
                ", orderCount=" + orderCount +
                ", elderlyNames='" + elderlyNames + '\'' +
                ", firstLoginTime=" + firstLoginTime +
                '}';
    }
}

